#ifndef GAMEMODEL_H
#define GAMEMODEL_H

#include <vector>//容器头文件，很重要

enum GameType
{
    PERSON,
    AI
};


enum GameStatus
{
    PLAYING,
    WIN,
    DEAD
};

const int kBoardSizeNum = 15;

class GameModel
{
public:
    GameModel();

public:
    std::vector<std::vector<int>> gameMapVec;//容器
    std::vector<std::vector<int>> scoreMapVec;//容器
    bool playerFlag;
    GameType gameType;
    GameStatus gameStatus;

    void startGame(GameType type); // 开始游戏
    void calculateScore(); // 计算评分
    void actionByPerson(int row, int col); // 人执行下棋
    void actionByAI(int &clickRow, int &clickCol); // 机器执行下棋
    void updateGameMap(int row, int col); // 每次落子后更新游戏棋盘，由行和列坐标确定棋子位置，从而反应比赛进行情况
    bool Win(int row, int col); // 判断游戏是否胜利
    bool DeadGame(); // 判断是否和棋
};

#endif // GAMEMODEL_H
